﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Athena.Runtime.Server
{
    public interface IServiceDiscover
    {
        IEnumerable<ServiceEntry> GetEntries<T>(IEnumerable<Type> types, Func<IEnumerable<Type>, IEnumerable<Type>> serviceImplementationTypeFilter = null) where T : Attribute;

        IEnumerable<ServiceEntry> GetEntries(IEnumerable<Type> types, Type serviceMark = null, Func<IEnumerable<Type>, IEnumerable<Type>> serviceImplementationTypeFilter = null);
    }
}
